package com.ssy.lingxi.settle.accounts.model.vo.response;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 请款单详情VO
 * @author Saske
 * @date 2021/12/21
 * @version 2.0.0
 */
public class ApplyAmountDetailVO implements Serializable {

    private static final long serialVersionUID = -910012L;

    /**
     * id
     */
    private Long id;

    /**
     * 请款单号
     */
    private String applyNo;

    /**
     * 请款单状态，定义在ApplyAmountStatusEnum中
     */
    private Integer status;

    /**
     * 请款单状态名称
     */
    private String statusName;

    /**
     * 请款单内部状态，定义在ApplyAmountInnerStatusEnum中
     */
    private Integer InnerStatus;

    /**
     * 请款单内部状态名称
     */
    private String InnerStatusName;

    /**
     * 请款类型,定义在ApplyAmountTypeEnum中
     */
    private Integer applyType;

    /**
     * 请款类型名称
     */
    private String applyTypeName;

    /**
     * 请款单摘要
     */
    private String applyAbstract;

    /**
     * 供应商会员id
     */
    private Long vendorMemberId;

    /**
     * 供应商角色id
     */
    private Long vendorRoleId;

    /**
     * 收款方
     */
    private String payee;

    /**
     * 付款方
     */
    private String payer;

    /**
     * 账号名称
     */
    private String accountName;

    /**
     * 银行账号
     */
    private String bankAccount;

    /**
     * 开户行
     */
    private String bankDeposit;

    /**
     * 请款金额
     */
    private BigDecimal applyAmount;

    /**
     * 预计付款日期
     */
    private String expectPayTime;

    /**
     * 付款方式：
     * 定义在 PurchaseContractPayTypeEnum 中
     */
    private Integer payWay;

    /**
     * 付款方式枚举
     */
    private String payWayName;

    /**
     * 付款方式参数-月：付款方式为账期-月，显示月数
     */
    private Integer payMonth;

    /**
     * 付款方式参数-日：付款方式为账期-月或者账期-天，显示日期或天数
     */
    private Integer payDate;

    /**
     * 支付方式,定义在 SettlementTypeEnum 中
     */
    private Integer moneyPayWay;

    /**
     * 支付方式名称
     */
    private String moneyPayWayName;

    /**
     * 请款备注
     */
    private String remark;

    /**
     * 对应对账单ID
     */
    private Long reconciliationId;

    /**
     * 对应对账单号
     */
    private String reconciliationNo;

    /**
     * 单据时间
     */
    private String createTime;

    /**
     * 请款金额
     */
    private BigDecimal applyPayment;

    /**
     * 核销金额
     */
    private BigDecimal writeOffAmount;

    /**
     * 请款单行详情VO
     */
    List<ApplyAmountRowDetailVO> row;

    /**
     * 发票信息
     */
    private ReconciliationInvoiceMessage invoiceMessages;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getApplyNo() {
        return applyNo;
    }

    public void setApplyNo(String applyNo) {
        this.applyNo = applyNo;
    }

    public String getApplyAbstract() {
        return applyAbstract;
    }

    public void setApplyAbstract(String applyAbstract) {
        this.applyAbstract = applyAbstract;
    }

    public Long getVendorMemberId() {
        return vendorMemberId;
    }

    public void setVendorMemberId(Long vendorMemberId) {
        this.vendorMemberId = vendorMemberId;
    }

    public Long getVendorRoleId() {
        return vendorRoleId;
    }

    public void setVendorRoleId(Long vendorRoleId) {
        this.vendorRoleId = vendorRoleId;
    }

    public String getPayee() {
        return payee;
    }

    public void setPayee(String payee) {
        this.payee = payee;
    }

    public String getPayer() {
        return payer;
    }

    public void setPayer(String payer) {
        this.payer = payer;
    }

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    public String getBankAccount() {
        return bankAccount;
    }

    public void setBankAccount(String bankAccount) {
        this.bankAccount = bankAccount;
    }

    public String getBankDeposit() {
        return bankDeposit;
    }

    public void setBankDeposit(String bankDeposit) {
        this.bankDeposit = bankDeposit;
    }

    public BigDecimal getApplyAmount() {
        return applyAmount;
    }

    public void setApplyAmount(BigDecimal applyAmount) {
        this.applyAmount = applyAmount;
    }

    public String getExpectPayTime() {
        return expectPayTime;
    }

    public void setExpectPayTime(String expectPayTime) {
        this.expectPayTime = expectPayTime;
    }

    public Integer getPayWay() {
        return payWay;
    }

    public void setPayWay(Integer payWay) {
        this.payWay = payWay;
    }

    public String getPayWayName() {
        return payWayName;
    }

    public void setPayWayName(String payWayName) {
        this.payWayName = payWayName;
    }

    public Integer getPayMonth() {
        return payMonth;
    }

    public void setPayMonth(Integer payMonth) {
        this.payMonth = payMonth;
    }

    public Integer getPayDate() {
        return payDate;
    }

    public void setPayDate(Integer payDate) {
        this.payDate = payDate;
    }

    public Integer getMoneyPayWay() {
        return moneyPayWay;
    }

    public void setMoneyPayWay(Integer moneyPayWay) {
        this.moneyPayWay = moneyPayWay;
    }

    public String getMoneyPayWayName() {
        return moneyPayWayName;
    }

    public void setMoneyPayWayName(String moneyPayWayName) {
        this.moneyPayWayName = moneyPayWayName;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Long getReconciliationId() {
        return reconciliationId;
    }

    public void setReconciliationId(Long reconciliationId) {
        this.reconciliationId = reconciliationId;
    }

    public String getReconciliationNo() {
        return reconciliationNo;
    }

    public void setReconciliationNo(String reconciliationNo) {
        this.reconciliationNo = reconciliationNo;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public List<ApplyAmountRowDetailVO> getRow() {
        return row;
    }

    public void setRow(List<ApplyAmountRowDetailVO> row) {
        this.row = row;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getStatusName() {
        return statusName;
    }

    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }

    public Integer getInnerStatus() {
        return InnerStatus;
    }

    public void setInnerStatus(Integer innerStatus) {
        InnerStatus = innerStatus;
    }

    public String getInnerStatusName() {
        return InnerStatusName;
    }

    public void setInnerStatusName(String innerStatusName) {
        InnerStatusName = innerStatusName;
    }

    public Integer getApplyType() {
        return applyType;
    }

    public void setApplyType(Integer applyType) {
        this.applyType = applyType;
    }

    public String getApplyTypeName() {
        return applyTypeName;
    }

    public void setApplyTypeName(String applyTypeName) {
        this.applyTypeName = applyTypeName;
    }

    public BigDecimal getApplyPayment() {
        return applyPayment;
    }

    public void setApplyPayment(BigDecimal applyPayment) {
        this.applyPayment = applyPayment;
    }

    public BigDecimal getWriteOffAmount() {
        return writeOffAmount;
    }

    public void setWriteOffAmount(BigDecimal writeOffAmount) {
        this.writeOffAmount = writeOffAmount;
    }

    public ReconciliationInvoiceMessage getInvoiceMessages() {
        return invoiceMessages;
    }

    public void setInvoiceMessages(ReconciliationInvoiceMessage invoiceMessages) {
        this.invoiceMessages = invoiceMessages;
    }
}
